HAL SPDIFRX IRQ handler and callbacks functions migration

This section provides information about the HAL SPDIFRX callbacks register/unregister functions migration.

HAL SPDIFRX IRQ handler function

HAL1

HAL2

HAL_SPDIFRX_IRQHandler(SPDIFRX_HandleTypeDef *hspdifrx);
HAL_SPDIFRX_IRQHandler(hal_spdifrx_handle_t *hspdifrx);

Related use case: Use case: HAL SPDIFRX receptions in interrupt mode


HAL SPDIFRX register/unregister callback functions

HAL SPDIFRX register callback

In HAL1, the function HAL_SPDIFRX_RegisterCallback() is used to register various SPDIFRX callbacks through a single function with a specific callback ID, whereas, in HAL2, distinct functions are available to register each specific SPDIFRX callback.

HAL 1

HAL 2

SPDIFRX receive half completed callback

HAL_SPDIFRX_RegisterCallback(&hspdifrx,
                             HAL_SPDIFRX_RX_HALF_CB_ID,
                             USER_SPDIFRX_RxHalfCpltCallback);
HAL_SPDIFRX_RegisterDataHalfCpltCallback(&hspdifrx,
                                         USER_SPDIFRX_DataHalfCpltCallback);

SPDIFRX receive completed callback

HAL_SPDIFRX_RegisterCallback(&hspdifrx,
                            HAL_SPDIFRX_RX_CPLT_CB_ID,
                            USER_SPDIFRX_RxCpltCallback);
HAL_SPDIFRX_RegisterDataCpltCallback(&hspdifrx,
                                    USER_SPDIFRX_DataCpltCallback);

SPDIFRX channel half completed callback

HAL_SPDIFRX_RegisterCallback(&hspdifrx,
                            HAL_SPDIFRX_CX_HALF_CB_ID,
                            USER_SPDIFRX_CxHalfCpltCallback);
HAL_SPDIFRX_RegisterControlHalfCpltCallback(&hspdifrx,
                                           USER_SPDIFRX_ControlHalfCpltCallback);

SPDIFRX channel completed callback

HAL_SPDIFRX_RegisterCallback(&hspdifrx,
                            HAL_SPDIFRX_CX_CPLT_CB_ID,
                            USER_SPDIFRX_CxCpltCallback);
HAL_SPDIFRX_RegisterControlCpltCallback(&hspdifrx,
                                       USER_SPDIFRX_ControlCpltCallback);

SPDIFRX error callback

HAL_SPDIFRX_RegisterCallback(&hspdifrx,
                            HAL_SPDIFRX_ERROR_CB_ID,
                            USER_SPDIFRX_ErrorCallback);
HAL_SPDIFRX_RegisterErrorCallback(&hspdifrx,
                                 USER_SPDIFRX_ErrorCallback);

SPDIFRX Msp init callback

HAL_SPDIFRX_RegisterCallback(&hspdifrx,
                            HAL_SPDIFRX_MSPINIT_CB_ID,
                            USER_SPDIFRX_MspInitCallback);
/* Removed/Sequence changed */

See Generated HAL SPDIFRX initialization and de-initialization sequences for more details.

SPDIFRX Msp Deinit callback

HAL_SPDIFRX_RegisterCallback(&hspdifrx,
                            HAL_SPDIFRX_MSPDEINIT_CB_ID,
                            USER_SPDIFRX_MspDeinitCallback);
/* Removed/Sequence changed */

See Generated HAL SPDIFRX initialization and de-initialization sequences for more details.

Related concepts:


HAL SPDIFRX unregister callback

In HAL2, the unregister callback API HAL_SPDIFRX_UnRegisterCallback() has been removed. Instead, callbacks can be managed by re-registering the default HAL SPDIFRX weak callbacks as needed.

HAL 1

HAL 2

SPDIFRX receive half completed callback

HAL_SPDIFRX_UnRegisterCallback(&hspdifrx,
                               HAL_SPDIFRX_RX_HALF_CB_ID);
HAL_SPDIFRX_RegisterDataHalfCpltCallback(&hspdifrx,
                                         HAL_SPDIFRX_DataHalfCpltCallback);

SPDIFRX receive completed callback

HAL_SPDIFRX_UnRegisterCallback(&hspdifrx,
                               HAL_SPDIFRX_RX_CPLT_CB_ID);
HAL_SPDIFRX_RegisterDataCpltCallback(&hspdifrx,
                                     HAL_SPDIFRX_DataCpltCallback);

SPDIFRX channel half completed callback

HAL_SPDIFRX_UnRegisterCallback(&hspdifrx,
                               HAL_SPDIFRX_CX_HALF_CB_ID);
HAL_SPDIFRX_RegisterControlHalfCpltCallback(&hspdifrx,
                                            HAL_SPDIFRX_ControlHalfCpltCallback);

SPDIFRX channel completed callback

HAL_SPDIFRX_UnRegisterCallback(&hspdifrx,
                               HAL_SPDIFRX_CX_CPLT_CB_ID);
HAL_SPDIFRX_RegisterControlCpltCallback(&hspdifrx,
                                        HAL_SPDIFRX_ControlCpltCallback);

SPDIFRX error callback

HAL_SPDIFRX_UnRegisterCallback(&hspdifrx,
                               HAL_SPDIFRX_ERROR_CB_ID);
HAL_SPDIFRX_RegisterErrorCallback(&hspdifrx,
                                  HAL_SPDIFRX_ErrorCallback);

SPDIFRX Msp init callback

HAL_SPDIFRX_UnRegisterCallback(&hspdifrx,
                               HAL_SPDIFRX_MSPINIT_CB_ID);
/* Removed / Sequence changed */

See Generated HAL SPDIFRX initialization and de-initialization sequences for more details.

SPDIFRX Msp Deinit callback

HAL_SPDIFRX_UnRegisterCallback(&hspdifrx,
                               HAL_SPDIFRX_MSPDEINIT_CB_ID);
/* Removed / Sequence changed */

See Generated HAL SPDIFRX initialization and de-initialization sequences for more details.

Related concepts:


HAL SPDIFRX channel transfer complete callback

HAL1

HAL2

void HAL_SPDIFRX_CxCpltCallback(SPDIFRX_HandleTypeDef *hspdif);
void HAL_SPDIFRX_ControlCpltCallback(hal_spdifrx_handle_t *hspdifrx);

HAL SPDIFRX channel half transfer complete callback

HAL1

HAL2

void HAL_SPDIFRX_CxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif);
void HAL_SPDIFRX_ControlHalfCpltCallback(hal_spdifrx_handle_t *hspdifrx);

HAL SPDIFRX receive complete callback

HAL1

HAL2

void HAL_SPDIFRX_RxCpltCallback(SPDIFRX_HandleTypeDef *hspdif);
void HAL_SPDIFRX_DataCpltCallback(hal_spdifrx_handle_t *hspdifrx);

HAL SPDIFRX receive half complete callback

HAL1

HAL2

void HAL_SPDIFRX_RxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif);
void HAL_SPDIFRX_DataHalfCpltCallback(hal_spdifrx_handle_t *hspdifrx);

HAL SPDIFRX error callback

HAL1

HAL2

void HAL_SPDIFRX_ErrorCallback(SPDIFRX_HandleTypeDef *hspdif);
void HAL_SPDIFRX_ErrorCallback(hal_spdifrx_handle_t *hspdifrx);